﻿///<reference path="../../../Scripts/collections.ts"/>

module Enferno.Public.Web.Components.ViewModels.Interfaces {
    
    export interface IProductViewModel extends IComponentViewModel {
        setPartNo(partNo: string);
        setPriceListId(priceListId: number);
        setDefaultImage(image: Models.FileInfoModel);
        setDisplayPrice(price: number);
        setCatalogPrice(price: number);
        setAdditionalImages(images: Array<Models.FileInfoModel>);
        setOnHandStatusDisplayText(text: string);
        setActiveVariant(variant: Models.ProductVariantModel);
        setVariantParametricSelectedValue<TParametricValueViewModel extends IParametricValueViewModel>(parametricId: number, parametricValue: TParametricValueViewModel);

        getAllFiles(): Array<Models.FileInfoModel>;
        getVariantParametrics(): Array<Models.ParametricModel>;
        getVariants(): Array<Models.ProductVariantModel>;
        getVariantParametric(id: number): Models.ParametricModel;
        getActiveVariant(): Models.ProductVariantModel;
        getVariantParametricSelectedValueHolder<TParametricValueHolder>(parametricId: number): TParametricValueHolder;
        getSelectedValueForVariantParametric<TParametricValueViewModel>(parametricId: number): TParametricValueViewModel
        getVariantParametricSelectedIds(): Array<number>;
    }

} 